-----      bfs2pack by Karok, release 2.1    -----
-----  "smart mode" with template by GulBroz -----
-----      FO:UC bfs support by GulBroz      -----

This release contains two sets of programs: BFS2packxxx.exe and BFS3packxxx.exe
THEY HAVE exactly same features, the only difference is that default format for
BFS2packxxx.exe is Flatout2, whereas default bfs file format for BFS3packxxx.exe
is Flatout Ultimate Carnage.
In the same way, BFS2packxxx.exe "smart" programs use bfs2pack_fo2.ini and
bfs2pack_fouc.ini, while BFS3packxxx.exe "smart" programs use bfs3pack_fo2.ini
and bfs3pack_fouc.ini, but bfs2pack_fo2.ini and bfs3pack_fo2.ini are exactly the
same (and so bfs2pack_fouc.ini and bfs3pack_fouc.ini)

-------------------------------
- GUI Mode -
-------------------------------

-- Unpacks new bfs archives from flatout2 --

1. copy the content of this archive to some directory
2. start bfs2pack_gui.exe
3. drag and drop any bfs archive onto the bfs2pack window
4. choose a directory, where extracted files should be placed

-- Packs files into an bfs archive --

1. copy the content of this archive to some directory
2. start bfs2pack_gui.exe
3. drag and drop a directory onto the bfs2pack window (should contain the same structure like the flatout2-data-dir)
4. choose a filename (.bfs is added automatically)

5. edit file: filesystem, change it, so it looks like:
fo2a.bfs
fo2b.bfs
fo2c.bfs
<YOURNEWBFSHERE>.bfs
6. Notice: There MUST NOT be an empty last line!
7. Start flatout2, have fun!

-------------------------------
- Console Mode -
-------------------------------

* Use bfs2pack_con.exe --help for some help. It basically works like any other
  archiver program (zip, tar, ...).

------
Karoks bfs3pack - Flatout 2/Ultimate Carnage bfs archive packer/unpacker
Have fun!

Usage: BFS3pack_smart_con.exe <a|x|l|d> [options] <foobar.bfs> [[dir] | [files...]]

Modes:
   a                     create a new bfs archive `foobar.bfs`
   d                     dummy: simulates creation of bfs archive `foobar.bfs`
   x                     extract bfs archive `foobar.bfs`
   l                     list contents of `foobar.bfs`

Options:
   -h, --help            display this help and exit
   -V, --version         output version information and exit
   -z, --zip             forces zipping of every file
   -n, --nozip           do not zip any file (DEFAULT)
   -q, --quiet           runs bfs2pack without messages
   -v, --verbose         more messages when running
   -t, --template <file> use file for template instead of default (bfs3pack_fo2.ini)

   -U, --fouc            bfs is in FO:UC format (default)
   -2, --fo2             bfs is in FO2 format

Arguments:
   <foofile.bfs>         bfs archive to pack to / unpack from
   [dir]                 directory to pack in foobar.bfs
   [files...]            masks of files to extract from foobar.bfs
------

* You can now add file filters after bfs name when extracting, only files that
  match the filter(s) will be extracted (works also when listing bfs content)
  Syntax for this is:
     bfs2pack_smart_con.exe <x|l> [options] <foobar.bfs> [files...]

  <files> can have joker chararcters, using a pseudo-MSDOS syntax:
      "*" => Any number of characters (or none)
      "?" => One character
  Filters MUST match a whole file name in bfs, as there is no directory in bfs
  (only files), you must add "/*" at the end of a dir. name you want to extract:
        bfs2pack_smart_con.exe x fo2a.bfs data/tracks/*
  will extract all data/tracks/ content from bfs, but if you put only
  "data/tracks" or "data/tracks/", nothing will be extracted as it does
  not match any file name in bfs

-- Note --

* Every file is overwritten, WITHOUT any remark! 

* "Smart mode": the program now reads a template file (bfs2pack_fo2.ini or
  bfs2pack_fouc.ini in same directory as executable by default) to learn what
  to compress and what to store in bfs files.

* If the GUI version cannot load the template file, then it behaves as previous
  version (ask for global compress/no compress)

* To create a template file from bfs, you can use the console version, and list
  the content of the bfs in verbose mode, providing the name of a template file
       bfs2pack_con.exe l patch1.bfs -v -t patch1.ini

----- History -----
YY-MM-DD

10-06-30: V2.1 - GulBroz -
  - Fix file names in bfs when not using "data/" as root dir, or using gui

10-06-26: V2.0 - GulBroz -
  - Full support of FO:UC bfs format
  - Dropped support for Xbox bfs
  - Rename template bfs2pack.ini to bfs2pack_fo2.ini (Flatout2)
  - Add template bfs2pack_fouc.ini (Flatout Ultimate Carnage)
  - Replaced option (-Y/--x360) by (-U/--fouc) in console version
  - Replaced option (-P/--pc) by (-2/--fo2) in console version
  - Dropped option (-X/--xbox) in console version
  - Replaced option (--x360) by (--fouc) in gui version
  - Replaced option (--pc) by (--fo2) in gui version
  - Dropped option (--xbox) in gui version

08-09-09: V1.6b2 - GulBroz -
  - Fixed Xbox360 bfs packing
  - Added support for Xbox and Xbox360 bfs file format in gui versions
  - !! Writing of Xbox and Xbox360 bfs is *NOT* tested !!

08-07-17: V1.6b1 - GulBroz -
  - Added support for Xbox and Xbox360 bfs file format (-X and -Y options)
  - !! Writing of Xbox and Xbox360 bfs is *NOT* tested !!

07-06-24: V1.5 - GulBroz -
  - fixed console: erroneous "crc error" messages when extracting stored file
  - added extraction file filters in console mode (no need to extract all files
    from bfs when you wants only a subset)

07-06-23: V1.4 - GulBroz -
  - fixed smart mode when root directory is not "data"
  - fixed GUI: last read directory was locked by program when packing bfs

07-03-01: V1.3 - GulBroz -
  - added "smart mode"
  - zlib1.dll is not needed anymore

06-09-08: V1.2
  - added console application

06-09-01:
  - http://sourceforge.net/projects/bfs2pack
  - small fixes

06-08-31:
  - included gfx by jelbo (www.flatoutjoint.com)
  - bugfixes

06-08-21:
  - new gui, with drag and drop support
  - packing original fo2a-data dir into a new bfs archive using the secure mode, creates a compatible archive!

06-08-19:
  - finally found the correct filename hashing algorithm (thx Pavcules)
  - now packing files with new filenames WORKS

06-08-16:
  - fixed some serious bugs (0 byte files and several problems with encrypting filenames)
  - extracted filename list to lua script (look at filenames.lua)
  - included two mods (fullroam and instantaction) to show usage and to prove functionality

06-07-18:
  - some fixes

06-07-17:
  - 3rd release
  - unpacking checks checksum (crc32)
  - packing, first test ;-)
  
06-07-13:
  - 2nd public release, now its c++
  
06-07-11:
  - 1. public release

----- Contact me -----

icq: #111595069

